Positioning network devices

ABSTRACT

A method for positioning network devices includes receiving network parameters for a network and determining corresponding installation locations for the end devices based on the network parameters. The network includes at least one network backhaul, relay devices in communication with the network backhaul, and end devices in communication with the relay devices or the network backhaul. The end devices are configured to wirelessly communicate with user devices at the corresponding user locations. The method also includes determining communication connections between at least one of: the end devices and user devices; the relay devices and the at least one network backhaul; the relay devices and the end devices; or the end devices and the at least one network backhaul. The method further includes generating a network topology indicating the determined corresponding locations for the end devices and the determined communication connections.

CROSS REFERENCE TO RELATED APPLICATIONS

This U.S. patent application is a continuation of, and claims priorityunder 35 U.S.C. § 120 from U.S. patent application Ser. No. 15/806,340,filed on Nov. 8, 2017, which claims priority under 35 U.S.C. § 119(e) toU.S. Provisional Application 62/437,003, filed on Dec. 20, 2016. Thedisclosures of these prior applications are considered part of thedisclosure of this application and are hereby incorporated by referencein their entireties.

TECHNICAL FIELD

This disclosure relates to allocating and positioning network deviceswithin a network.

BACKGROUND

Service providers may provide content (e.g., television, internet,telephone, etc.) to households of customers using wired connections. Thewired connections generally include optical cables, copper cables,and/or other fixed wire-based technologies. When deploying a new network(e.g., an optical access network) in a geographic region, fixed wirelesstechnologies may be used along a last-run portion to wirelessly providethe content to the customer households to reduce build costs and buildtimes associated with deploying/installing wired connections. However,network designers are faced with the challenge of considering numerousfixed-wireless network topology combinations that provide wirelesscoverage to the customer households, and selecting an optimal topologyassociated with an acceptable installation cost.

SUMMARY

One aspect of the disclosure provides a method for positioning networkdevices. The method includes receiving, at data processing hardware,network parameters for a network and determining, by the data processinghardware, corresponding installation locations for the end devices basedon the network parameters. The network includes at least one networkbackhaul, relay devices in communication with the network backhaul, andend devices in communication with the relay devices or the networkbackhaul. The end devices are configured to wirelessly communicate withuser devices at the corresponding user locations. The method alsoincludes determining, by the data processing hardware, communicationconnections between at least one of: the end devices and user devices;the relay devices and the at least one network backhaul; the relaydevices and the end devices; or the end devices and the at least onenetwork backhaul. The method further includes generating, by the dataprocessing hardware, a network topology indicating the determinedcorresponding locations for the end devices and the determinedcommunication connections.

Implementations of the disclosure may include one or more of thefollowing optional features. In some implementations, the methodincludes determining corresponding installation locations for thedevices based on the network parameters. The network topology mayinclude a map indicating the corresponding installation locations of therelay devices and the end devices, and the determined communicationconnections.

In some examples, the network parameters include at least one of:corresponding candidate installation locations for the end devices; awireless coverage criteria of the end devices; a threshold receivedsignal strength indicator (RSSI) at the end devices; a thresholdsignal-to-interference-plus-noise ratio (SINR) at the end devices; or aminimum communication bandwidth of the end devices. The networkparameters may also include at least one of a wireless coverage area ofthe relay devices, backhaul locations, or a map of a geographical areacontaining at least a portion of the network. The network backhaul maybe configured to wirelessly communicate with the relay devices and therelay devices are configured to wirelessly communicate with at least oneof each other or the end devices. The corresponding locations for theend devices may be based on a threshold number of possiblepoint-to-multi-point communication connections between each end deviceand corresponding user devices.

In some examples, the method includes determining, by the dataprocessing hardware, a projected installation cost for installing thenetwork topology and determining, by the data processing hardware,whether the projected installation cost exceeds a threshold installationcost. When the projected installation cost exceeds a thresholdinitiation cost, the method may include determining, by the dataprocessing hardware, the corresponding installation locations for theend devices based on the network parameters and the projectedinstallation cost. The method may further include determining, by thedata processing hardware, communication connections between at least oneof: the end devices and user devices; the relay devices and the at leastone network backhaul; the relay devices and the end devices; or the enddevices and the at least one network backhaul, based on the projectedinstallation cost.

Determining the communication connection may include, for each enddevice, determining a line-of-sight (LOS) communication path between theat least one network backhaul and the corresponding end device. The LOScommunication path may include communication links between the at leastone network backhaul and at least one relay device, and between the atleast one relay device and the corresponding end device. The method mayalso include sending the network topology from the data processinghardware to a screen, causing the screen to display the network topologyin a graphical user interface.

Another aspect of the disclosure provides a system for positioningnetwork devices. The system includes data processing hardware and memoryhardware in communication with the data processing hardware. The memoryhardware stores instructions that when executed on the data processinghardware cause the data processing hardware to perform operations. Theoperations include receiving network parameters for a network anddetermining corresponding installation locations for the end devicesbased on the network parameters. The network includes at least onenetwork backhaul, relay devices in communication with the networkbackhaul, and end devices in communication with the relay devices or thenetwork backhaul. The end devices are configured to wirelesslycommunication with user devices at the corresponding user locations. Theoperations also include determining communication connections between atleast one of: the end devices and user devices; the relay devices andthe at least one network backhaul; the relay devices and the enddevices; or the end devices and the at least one network backhaul. Theoperations further include generating a network topology indicating thedetermined corresponding locations for the end devices and thedetermined communication connections.

This aspect may include one or more of the following optional features.In some implementations, the operations include determiningcorresponding installation locations for the relay devices based on thenetwork parameters. The network topology may include a map indicatingthe corresponding installation locations of the relay devices and theend devices, and the determined communication connections.

In some examples, the network parameters include at least one ofcorresponding candidate installation locations for the end devices, awireless coverage criteria of the end devices, a threshold receivedsignal strength indicator (RSSI) at the end devices, a thresholdsignal-to-interference-plus-noise ratio (SINR) at the end devices, or aminimum communication bandwidth of the end devices. The networkparameters may also include at least one of a wireless coverage area ofthe relay devices, backhaul locations, or a map of a geographical areacontaining at least a portion of the network. Determining thecorresponding locations for the end devices may be based on a thresholdnumber of possible point-to-multi-point communication connectionsbetween each end device and corresponding user devices.

The operations may further include determining, by the data processinghardware, a projected installation cost for installing the networktopology and determining, by the data processing hardware, whether theprojected installation cost exceeds a threshold installation cost. Whenthe projected installation cost exceeds a threshold installation cost,the operations may include determining, by the data processing hardware,the corresponding installation locations for the end devices based onthe network parameters and the projected installation cost. Theoperations may also include determining, by the data processinghardware, communication connections between at least one of: the enddevices and user devices; the relay devices and the at least one networkbackhaul; the relay devices and the end devices; or the end devices andthe at least one network backhaul, based on the projected installationcost.

In some implementations, determining the communication connectionsincludes, for each end device determining a line-of-sight (LOS)communication path between the at least one network backhaul and thecorresponding end device. The LOS communication path may includecommunication links between the at least one network backhaul and atleast one relay device, and between the at least one relay device andthe corresponding end device. The operations may also include sendingthe network topology from the data processing hardware to a screen,causing the screen to display the network topology in a graphical userinterface.

The details of one or more implementations of the disclosure are setforth in the accompanying drawings and the description below. Otheraspects, features, and advantages will be apparent from the descriptionand drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic view of an example system for generating networktopologies.

FIG. 2 is a schematic view of an example computing device executing anetwork topology analyzer.

FIG. 3 is a schematic view of an example suggested network topology.

FIG. 4 is a schematic view of an example arrangement of operations for amethod of positioning network devices.

FIG. 5 is schematic view of an example computing device that may be usedto implement the systems and methods described in this document.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

Referring to FIGS. 1-3, in some implementations, a system 100 includesdata processing hardware 112 (e.g., one or more computing devices, suchcentral processing units (CPUs)) in communication with memory hardware114. In some examples, the system 100 is a distributed system (e.g.,cloud environment) having scalable/elastic computing resources (e.g.,the data processing hardware 112) and/or storage resources (e.g., thememory hardware 114). The memory hardware 114 stores instructions thatwhen executed on the data processing hardware 112 cause the dataprocessing hardware 112 to perform operations for executing a networktopology analyzer 200 configured to determine a suggested networktopology 110 for a network 300. The suggested network topology 110provides suggested installation locations E, R for positioning networkdevices 310, 320, 330 of the network 300 and suggested communicationconnections 350 between the network devices 310, 320, 330. The network300 includes at least one network backhaul 310, one or more relaydevices 320, 320 a-n in communication with the network backhaul(s) 310,and end devices 330, 330 a-n in communication with the networkbackhaul(s) 310 and/or the relay devices 320.

Referring to FIG. 3, in some implementations, the network 300corresponds to a fixed wireless network 300 configured to wirelesslydeliver communication signals 302 through wireless communication links350 between the network backhaul 310 and user devices 342, 342 a-nassociated with users 344 (also referred to as customers orsubscribers). The user devices 342, 342 a-n are typically located atpremises 340, 340 a-n of the users 344. Each user 344 may be associatedwith a user location 346, which may be based on the address of thepremises 340 of the user 344 or geographic coordinates of the premises340.

The user devices 342 may correspond to customer premises equipment (CPE)including any terminal and associated equipment located at the premises340 of the user 344 and connected to one of the end devices 330 via anassociated wireless communication link 352 at a demarcation point(“demarc”). The demarc is a point established in a house, building, orcomplex to separate customer equipment from service provider equipment.CPE generally refers to devices such as telephones, routers, switches,residential gateways (RG), set-top boxes, fixed mobile convergenceproducts, home networking adapters, or Internet access gateways thatenable the user 344 to access services of a communications serviceprovider and distribute them around the premises 340 of the user 344 viaa local area network (LAN). Accordingly, a user device 342 may include anetwork box equipped with multiple Internet protocol (IP) interfaces toserve as an access point (e.g., wireless or wired connection) for theLAN at the premises 340 of the user 344, for example, by offeringWireless Fidelity (Wi-Fi) connectivity to the LAN and/or by offeringmultiple wired connections capable of establishing connections withtarget electronic devices. Therefore, the user device 342 may serve as arouter to provide internet service to the target electronic deviceslocated within the premises 340 (e.g., building, house, office, etc.). Atarget electronic device may be a TV box, a storage box, a tablet, avoice-over-internet protocol (VoIP) device, a phone or smartphone, acomputer (or a laptop, a portable electronic device), etc.

Each end device 330 may include a fixed access site configured towirelessly transmit/receive communication signals 302 to and frommultiple user devices 342 located within a wireless coverage area of theend device 330. Accordingly, the end devices 330 may providepoint-to-multipoint communications such that each end device 330 mayserve multiple (e.g., tens to hundreds) target user devices 342, 342 a-nlocated at the premises 340, 340 a-n of the users 344. In someimplementations, one or more of the end devices 330, 330 a-n includemultiple-input multiple-output (MIMO) circuitry for communicating with:the network backhaul 110 or the relay device 320; and one or more userdevices 342, 342 a-n located at the premises 340, 340 a-n of the users344. Wireless communication links 352 between the end devices 330, 330a-n and the user devices 342, 342 a-n provides a last-run portion, alsoknown as the “last mile” (e.g., curb-to-home) or last-run link) forwirelessly distributing the communication signals 302 to the customerpremises 340, 340 a-n. Using the end devices 330 for wirelessly servingthe user devices 342 over the last-run portion reduces build costs andbuild times compared to laying down physical lines, cables, fibers, etchover the last-run portion. The end devices 330, 330 a-n may include theMIMO circuitry and may transmit the communication signals 302 throughthe communication links 352 to the user devices 342 over the millimeterwave spectrum. Each communication link 352 may require a directline-of-sight between the end device 330 and the corresponding userdevice 342. In some examples, the user devices 342 are capable ofaccessing internet content through the received communication signals302 at speeds of at least 100 megabits per second (Mbps) during peaktimes.

The at least network backhaul 310 connects to a wired network and isconfigured to provide content from the wired network to each of the enddevices 330, which are configured to wirelessly serve (e.g., via thewireless communication links 352) the user devices 342, 342 a-n locatedat the premises 340, 340 a-n of the users 344. In some examples, thenetwork backhaul 310 provides a high speed network to the user devices342, 342 a-n by routing wireless communication signals 302 through theend devices 330. The network 300 may include additional networkbackhauls 310 depending on the size of the geographic area. In someimplementations, the network backhaul 310 establishes a communicationconnection 350 directly with at least one end device 330 to wirelesslytransmit/receive the communication signal 302 to and from the at leastone end device 330. In these implementations, the at least one enddevice 330 and the network backhaul 310 include a direct line-of-sight(LOS) communication path therebetween for establishing the directcommunication connection 350 between the network backhaul 310 and the atleast one end device 330.

In some scenarios, no direct LOS communication path exists between thenetwork backhaul 310 and at least one of the end devices 330. In thesescenarios, at least one relay device 320 may serve as a wireless bridgefor establishing the communication connection 350 between the networkbackhaul 310 and the corresponding end device 330. For instance, therelay device 320 may establish a first communication connection 350 withthe wireless backhaul 310 and a second communication connection 350 withthe corresponding end device 330. Here, the relay device 320 may receivea communication signal 302 through the first communication connection350 from the network backhaul 310 and route the communication signal 302through the second communication connection 350 to the corresponding enddevice 330. In some examples, two or more relay devices 320 route acommunication signal 302 between the network backhaul 310 and an enddevice 330. Accordingly, the relay devices 320 are configured tocommunicate with at least one of each other or the end devices 330.

In some examples, the network backhaul 310 uses a high-frequencyspectrum to communicate with the relay devices 320 and/or the enddevices 330. For instance, the network backhaul, the relay devices 320,and the end devices 330 may use the millimeter wave spectrum forcommunicating with one another over the communication connections 350.

Referring back to FIG. 1, in some implementations, the network topologyanalyzer 200 receives network parameters 120 for the network 300 anddetermines corresponding installation locations E for the end devices330 based on the network parameters 120. The network parameters 120include the user locations 346 of the users 344 of the network 300. Eachuser location 346 may be determined based on the address or geographiccoordinates of the premises 340 of the corresponding user 344. As eachuser 344 may be associated with a corresponding user device 342, 342 a-nconfigured to wirelessly communicate with one of the end devices 330,330 a-n at the premises 340, the user location 346 may refer to thelocation of the corresponding user device 342. Generally, it isdesirable that the corresponding installation location E for each enddevice 330 maximizes the coverage area of the corresponding end device330 such that the corresponding end device 330 wirelessly serves amaximum number of user devices 342, 342 a-n (e.g., the number ofpremises 340). Thus, by determining installation locations E for the enddevices 330 that maximizes the number of user devices 342, 342 a-nserved by a given end device 330, the network 300 may use as few enddevices 330, 330 a-n as possible to thereby reduce building costs of thenetwork 300. In some examples, the corresponding installation locationsE for the end devices 330 is based on a threshold number of possiblepoint-to-multi-point communication connections 350 (e.g., communicationlinks 352) between each end device 330 and the corresponding userdevices 342. Additionally, the installation location E determined by thenetwork topology analyzer 200 for each end device 330 enables thecorresponding end device 330 to establish a LOS communication connection350 with the network backhaul 310 or one of the relay devices 320.

The network topology analyzer 200 may use one or more algorithms todetermine the corresponding installation locations E for the end devices330. For instance, the network topology analyzer 200 may use Tabusearch, heuristic algorithms, and/or linear programming techniques todetermine the corresponding installation locations E for the end devices330 based on the network parameters 120.

In some examples, the network parameters 120 also include networkperformance criteria 121 for the end devices 330. For instance, thenetwork performance criteria 121 may include at least one of a wirelesscoverage criteria of the end devices 330, a threshold received signalstrength indicator (RSSI) at the end devices 330, a thresholdsignal-to-interference-plus-noise ratio (SINR) at the end device 330, ora minimum communication bandwidth of the end devices 330. The thresholdRSSI and the threshold SINR may indicate minimum values of RSSI and SINRneeded by each end device 330 to provide adequate wireless coverage to agroup of user devices 342. In some implementations, the minimumcommunication bandwidth of the end devices 330 is about 60 Mbps.Additionally or alternatively, the network parameters 120 may includecorresponding candidate installation locations 122 for the end devices330. Here, each candidate installation location 122 may includegeographic coordinates such as a latitude, a longitude, and altitude ofthe candidate installation location 122. For instance, a candidateinstallation location 122 associated with a low altitude for a givenlatitude and longitude may indicate that the corresponding candidateinstallation location 122 is unsuitable an end device 330 to establishcommunication connections 350 with the network backhaul 310, the relaydevices 320, and/or the user devices 342. For instance, positioning anend device 330 at a candidate installation location associated with alow altitude and surrounded by mountains may preclude the end device 330from the ability to establish LOS communication connections 350 with atleast one of the network backhaul 310, the relay devices 320, or theuser devices 342.

In some examples, the network topology analyzer 200 also determinescorresponding installation locations R for the relay devices 320, 320a-n based on the network parameters 120. Here, the network parameters120 may include at least one of a wireless coverage area 123 of therelay devices 320, backhaul location(s) 124, or a map 125 of ageographical area containing at least a portion of the network 300. Eachbackhaul location 124 may include a corresponding location associatedwith each network backhaul 310 of the network 300. The map 125 of thegeographical area may include a polygon (or other shape) area on a map125 that covers a specified area for installing end devices 330 and/orrelay devices 320. In some examples, the map 125 may show a topographyof the geographical area and/or terrain features, such as forests and/orbodies of water, within the geographical area.

As with the determined corresponding installation locations E for theend devices 330, 330 a-n, the network topology analyzer 200 may use oneor more algorithms to determine the corresponding installation locationsR for the relay devices 320, 320 a-n. For instance, the network topologyanalyzer 200 may use Tabu search, heuristic algorithms, and/or linearprogramming techniques to determine the corresponding installationlocations R for the relay devices 320 based on the network parameters120.

In some implementations, the network topology analyzer 200 determinesthe communication connections 350 after determining the installationlocations for the end devices 330. For instance, the network topologyanalyzer 200 may determine communication connections 350 between atleast one of: the end devices 330 and the user devices 342; the relaydevices 320 and the at least one network backhaul 310; the relay devices320 and the end devices 330; or the end devices 330 and the at least onenetwork backhaul 310. In some examples, for each end device 330, thenetwork topology analyzer 200 determines the communication connections350 by determining a LOS communication path between the at least onenetwork backhaul 310 and the corresponding end device 330. In someexamples, the LOS communication path includes a direct communicationconnection 350 between the network backhaul 310 and the correspondingend device 330. In other examples, the LOS communication path includescommunication links between the at least one network backhaul 310 and atleast one relay device 320, and between the at least one relay device320 and the corresponding end device 330.

Thereafter, the network topology analyzer 200 may generate the suggestednetwork topology 110 indicating the determined correspondinginstallation locations E for the end devices 330 and the determinedcommunication connections 350. In the examples shown, the suggestednetwork topology 110 includes a map indicating the correspondinginstallation locations R, E of the relay devices 320, 320 a-n and theend devices 330, 330 a-n.

FIG. 2 shows a computing device 10 in communication with the networktopology analyzer 200, which executes on the data processing hardware112 of the system 100 of FIG. 1. The computing device 10 may beassociated with a network designer and the network designer may use thecomputing device 10 to access the network topology analyzer 200 fordesigning the network 300. The computing device 10 may display agraphical user interface (GUI) 116 on a screen 118 in communication withthe data processing hardware 112. The GUI 116 may enable the networkdesigner to input the network parameters 120. In some examples, thenetwork designer may search for network parameters 120 by selecting asearch button 132 displayed in the GUI 116. The computing device 10 maysend the network parameters 120 to the network topology analyzer 200.The network parameters 120 may include at least one of the userlocations 346, the performance criteria 121 for the end devices 230, thecandidate installation locations 122 for the end devices 230, thewireless coverage area 123 for the relay devices 320, the backhaullocations 124, and the map 125 of the geographical area containing atleast a portion of the network 300.

In some implementations, the computing device 10 sends an analyzerequest 210 to the network topology analyzer 200. The analyze request210 includes the network parameters 120 and requests the networktopology analyzer 200 to generate a suggested network topology 110 basedon the network parameters 120. For instance, the network topologyanalyzer 200 may receive the network parameters 120 in the analyzerequest 210 and determine the corresponding installation locations E forthe end devices 330, 330 a-n based on the network parameters 120. Thenetwork topology analyzer 200 may also determine the correspondinginstallation locations R for the relay devices 320, 320 a-n based on thenetwork parameters 120.

Moreover, the network topology analyzer 200 determines the communicationconnections 350 between at least one of: the end devices 330 and theuser devices 342, 342 a-n (e.g., network boxes); the relay devices 320,320 a-n and the at least one network backhaul 310; the relay devices 320and the end devices 330; or the end devices 330 and the at least onenetwork backhaul 310. In some examples, the network topology analyzer200 determines, for each end device 330, a LOS communication pathbetween the at least one network backhaul 310 and the corresponding enddevice 330. Here, the LOS communication path may include a directcommunication connection 350 between the at least one network backhaul310 and the corresponding end device 330, or the LOS communication pathmay include multiple communication links (e.g., multiple communicationconnections 350) between the at least one network backhaul 310 and atleast one relay device 320, and between the at least one relay device320 and the corresponding end device 330. For instance, the LOScommunication path between the corresponding end device 330 and the atleast one network backhaul 310 may require multiple communication linkswhen the at least one network backhaul 310 and the corresponding enddevice 330 are separated by a threshold communication distance and/or nodirect LOS exists therebetween.

Accordingly, the network topology analyzer 200 generates the suggestednetwork topology 110 indicating the determined correspondinginstallation locations E for the end devices 330 and the determinedcommunication connections 350. The suggested network topology 110 mayalso indicate the determined corresponding installation locations R forthe relay devices 320. In some implementations, the network topologyanalyzer 200 determines a projected installation cost 222 for installingthe suggested network topology 110. For instance, the projectedinstallation cost 222 may include the cost to install each end device330, 330 a-n and/or the cost to install each relay device 320, 320 a-n.

In some examples, the network topology analyzer 200 sends networktopology results 220 to the computing device 10 associated with thenetwork designer. The network topology results 220 may include at leastone of the suggested network topology 110 or the projected installationcost 222 for installing the suggested network topology. In response toreceiving the network topology results 220 from the network topologyanalyzer 200, the screen 118 of the computing device 10 may display thesuggested network topology 110 and/or the projected installation cost222 in the GUI 116. In the example shown, the screen 118 is displayingthe suggested network topology 110 and the projected installation cost222 in the GUI 116. The suggested network topology 110 includes the mapof the network 300 of FIG. 3 indicating the determined communicationconnections 350 and the corresponding installation locations R, E of therelay devices 320 and the end devices 330. In some examples, the mapincludes a heat map of all of the premises 340, 340 a-n wirelesslycovered by the end devices 330 of the suggested network topology 110.The displayed installation cost 222 includes a total installation costto install all of the network devices (e.g., the end devices 330 and therelay devices 320) of the suggested network topology 110. The displayedinstallation cost 222 may also show the installation cost associatedwith each end device 330 and each relay device 320.

In some implementations, the network topology analyzer 200 may determinewhether the projected installation cost 222 exceeds a thresholdinstallation cost. When the projected installation cost 222 exceeds thethreshold installation cost, the network topology analyzer 200 maydetermine new corresponding installation locations E for the end devices330 (and optionally the relay devices 320) based on the networkparameters 120 and the projected installation cost 222, and determinenew communication connections 350 based on the projected installationcost 222. Accordingly, the network topology analyzer 200 may generate anew suggested network topology 110 when a previously generated suggestednetwork topology 110 includes a projected installation cost 222 thatexceeds the threshold installation cost. The network topology analyzer200 may iteratively generate suggested network topologies 110 until oneof the suggested network topologies 110 is associated with aninstallation cost 222 less than the threshold installation cost.

FIG. 4 provides an example arrangement of operations for a method ofpositioning network devices 320, 330 in a fixed wireless network 300.The network 300 includes at least one network backhaul 310, relaydevices 320, 320 a-n in communication with the network backhaul 310, andend devices 330, 330 a-n in communication with the relay devices 320 orthe network backhaul 310. The end devices 330 are configured towirelessly communicate with user devices 342, 342 a-n at correspondinguser locations 346. Each user location 346 may refer to a location of acorresponding user/customer 344 associated with a corresponding userdevice 342, 342 a-n. Each user location 346 may include an address ofthe premises 340, 340 a-n of the corresponding user 344. In someexamples, the end devices 330 employ MIMO circuitry and wirelesslycommunicate with the user devices 342 over the millimeter wave spectrum.

At block 402, the method 400 includes receiving, at data processinghardware 112, network parameters 120 for the network 300. The networkparameters 120 include the user locations 346. At block 404, the method400 includes determining, by the data processing hardware 112,corresponding installation locations E for the end devices 330 based onthe network parameters 120. At block 406, the method 400 includesdetermining, by the data processing hardware 112, communicationconnections 350 between at least one of: the end devices 330 and theuser devices 342; the relay devices 320 and the at least one networkbackhaul 310; the relay devices 320 and the end devices 330; or the enddevices 330 and the at least one network backhaul 310. At block 408, themethod 400 includes generating, by the data processing hardware 112, asuggested network topology 110 indicating the determined correspondinginstallation locations E for the end devices 330 and the determinedcommunication connections 350.

In some implementations, the method 400 also includes determining, bythe data processing hardware 112, corresponding installation locations Rfor the relay devices 320 based on the network parameters 120. Thenetwork topology 110 may include a map indicating the correspondinginstallation locations R, E for the relay devices 320 and the enddevices 330, and the determined communication connections 350.

The network parameters 120 may include the performance criteria 121 forthe end devices 330. For instance, the performance criteria 121 mayinclude at least one of corresponding candidate installation locations122 for the end devices 330, a wireless coverage criteria of the enddevices 330, a threshold RSSI at the end devices 330, a threshold SINRat the end devices 330, or a minimum communication bandwidth of the enddevices 330. Additionally or alternatively, the network parameters 120may include at least one of a wireless coverage area 123 of the relaydevices 320, backhaul locations 124, or a map 125 of a geographical areacontaining at least a portion of the network 300. Each backhaul location124 may include a corresponding location associated with each networkbackhaul 310 of the network 300. The map 125 of the geographical areamay include a polygon (or other shape) area on a map 125 that covers aspecified area for installing end devices 330 and/or relay devices 320.

The at least one network backhaul 310 may be configured to wirelesslycommunicate with the relay devices 320 and the relay devices 320 may beconfigured to wirelessly communicate with at least one of each other orthe end devices 330. In some examples, determining the correspondinginstallation locations E for the end devices 330 is based on a thresholdnumber of possible point-to-multi-point communication connections 350between each end device 330 and corresponding user devices 342.

In some implementations, the method also includes determining, by thedata processing hardware 112, a projected installation cost 222 forinstalling the network topology 110, and determining, by the dataprocessing hardware 112, whether the projected installation cost 222exceeds a threshold installation cost. When the projected installationcost 222 exceeds a threshold installation cost, the method 400 mayinclude determining, by the data processing hardware 112, thecorresponding installation locations E for the end devices 330 based onthe network parameters 120 and the projected installation cost 222, anddetermining, by the data processing hardware 112, communicationconnections 350 based on the projected installation cost 222.

FIG. 5 is schematic view of an example computing device 500 that may beused to implement the systems and methods described in this document.The computing device 500 is intended to represent various forms ofdigital computers, such as laptops, desktops, workstations, personaldigital assistants, servers, blade servers, mainframes, and otherappropriate computers. The components shown here, their connections andrelationships, and their functions, are meant to be exemplary only, andare not meant to limit implementations of the inventions describedand/or claimed in this document.

The computing device 500 includes a processor 510, memory 520, a storagedevice 530, a high-speed interface/controller 540 connecting to thememory 520 and high-speed expansion ports 550, and a low speedinterface/controller 560 connecting to low speed bus 570 and storagedevice 530. Each of the components 510, 520, 530, 540, 550, and 560, areinterconnected using various busses, and may be mounted on a commonmotherboard or in other manners as appropriate. The processor 510 canprocess instructions for execution within the computing device 500,including instructions stored in the memory 520 or on the storage device530 to display graphical information for a graphical user interface(GUI) on an external input/output device, such as display 580 coupled tohigh speed interface 540. In other implementations, multiple processorsand/or multiple buses may be used, as appropriate, along with multiplememories and types of memory. Also, multiple computing devices 500 maybe connected, with each device providing portions of the necessaryoperations (e.g., as a server bank, a group of blade servers, or amulti-processor system).

The memory 520 stores information non-transitorily within the computingdevice 500. The memory 520 may be a computer-readable medium, a volatilememory unit(s), or non-volatile memory unit(s). The non-transitorymemory 520 may be physical devices used to store programs (e.g.,sequences of instructions) or data (e.g., program state information) ona temporary or permanent basis for use by the computing device 500.Examples of non-volatile memory include, but are not limited to, flashmemory and read-only memory (ROM)/programmable read-only memory(PROM)/erasable programmable read-only memory (EPROM)/electronicallyerasable programmable read-only memory (EEPROM) (e.g., typically usedfor firmware, such as boot programs). Examples of volatile memoryinclude, but are not limited to, random access memory (RAM), dynamicrandom access memory (DRAM), static random access memory (SRAM), phasechange memory (PCM) as well as disks or tapes.

The storage device 530 is capable of providing mass storage for thecomputing device 500. In some implementations, the storage device 530 isa computer-readable medium. In various different implementations, thestorage device 530 may be a floppy disk device, a hard disk device, anoptical disk device, or a tape device, a flash memory or other similarsolid state memory device, or an array of devices, including devices ina storage area network or other configurations. In additionalimplementations, a computer program product is tangibly embodied in aninformation carrier. The computer program product contains instructionsthat, when executed, perform one or more methods, such as thosedescribed above. The information carrier is a computer- ormachine-readable medium, such as the memory 520, the storage device 530,or memory on processor 510.

The high speed controller 540 manages bandwidth-intensive operations forthe computing device 500, while the low speed controller 560 manageslower bandwidth-intensive operations. Such allocation of duties isexemplary only. In some implementations, the high-speed controller 540is coupled to the memory 520, the display 580 (e.g., through a graphicsprocessor or accelerator), and to the high-speed expansion ports 550,which may accept various expansion cards (not shown). In someimplementations, the low-speed controller 560 is coupled to the storagedevice 530 and low-speed expansion port 570. The low-speed expansionport 570, which may include various communication ports (e.g., USB,Bluetooth, Ethernet, wireless Ethernet), may be coupled to one or moreinput/output devices, such as a keyboard, a pointing device, a scanner,or a networking device such as a switch or router, e.g., through anetwork adapter.

The computing device 500 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 500 a or multiple times in a group of such servers 500a, as a laptop computer 500 b, or as part of a rack server system 500 c.

Various implementations of the systems and techniques described hereincan be realized in digital electronic and/or optical circuitry,integrated circuitry, specially designed ASICs (application specificintegrated circuits), computer hardware, firmware, software, and/orcombinations thereof. These various implementations can includeimplementation in one or more computer programs that are executableand/or interpretable on a programmable system including at least oneprogrammable processor, which may be special or general purpose, coupledto receive data and instructions from, and to transmit data andinstructions to, a storage system, at least one input device, and atleast one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium” and“computer-readable medium” refer to any computer program product,non-transitory computer readable medium, apparatus and/or device (e.g.,magnetic discs, optical disks, memory, Programmable Logic Devices(PLDs)) used to provide machine instructions and/or data to aprogrammable processor, including a machine-readable medium thatreceives machine instructions as a machine-readable signal. The term“machine-readable signal” refers to any signal used to provide machineinstructions and/or data to a programmable processor.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows can also be performedby special purpose logic circuitry, e.g., an FPGA (field programmablegate array) or an ASIC (application specific integrated circuit).Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto optical disks, or optical disks. However, a computerneed not have such devices. Computer readable media suitable for storingcomputer program instructions and data include all forms of non-volatilememory, media and memory devices, including by way of examplesemiconductor memory devices, e.g., EPROM, EEPROM, and flash memorydevices; magnetic disks, e.g., internal hard disks or removable disks;magneto optical disks; and CD ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, special purposelogic circuitry.

To provide for interaction with a user, one or more aspects of thedisclosure can be implemented on a computer having a display device,e.g., a CRT (cathode ray tube), LCD (liquid crystal display) monitor, ortouch screen for displaying information to the user and optionally akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of the disclosure. Accordingly, otherimplementations are within the scope of the following claims.

What is claimed is:
 1. A method comprising: receiving, at dataprocessing hardware, network parameters for a network, the networkparameters comprising user locations, the network comprising: at leastone network backhaul; relay devices in communication with the networkbackhaul; and end devices in communication with the relay devices or thenetwork backhaul, the end devices configured to wirelessly communicatewith user devices at the corresponding user locations; determining, bythe data processing hardware, corresponding installation locations forthe end devices and the relay devices based on the network parameters;and generating, by the data processing hardware, a network topologyindicating the determined corresponding installation locations for theend devices and the relay devices.
 2. The method of claim 1, wherein thenetwork parameters further comprise at least one of correspondingcandidate installation locations for the end devices, a wirelesscoverage criteria of the end devices, a threshold received signalstrength indicator (RSSI) at the end devices, a thresholdsignal-to-interference-plus-noise ratio (SINR) at the end devices, or aminimum communication bandwidth of the end devices.
 3. The method ofclaim 1, wherein the network parameters further comprise at least one ofa wireless coverage area of the relay devices, backhaul locations, or amap of a geographical area containing at least a portion of the network.4. The method of claim 1, wherein the at least one network backhaul isconfigured to wirelessly communicate with the relay devices and therelay devices are configured to wirelessly communicate with at least oneof each other or the end devices.
 5. The method of claim 1, whereindetermining the corresponding installation locations for the end devicesis based on a threshold number of possible point-to-multi-pointcommunication connections between each end device and corresponding userdevices.
 6. The method of claim 1, further comprising determining, bythe data processing hardware, a projected installation cost forinstalling the network topology.
 7. The method of claim 6, furthercomprising: determining, by the data processing hardware, whether theprojected installation cost exceeds a threshold installation cost; andwhen the projected installation cost exceeds the threshold installationcost, determining the corresponding installation locations for the enddevices and the relay devices based on the network parameters and theprojected installation cost.
 8. The method of claim 7, furthercomprising, when the projected installation cost exceeds the thresholdinstallation cost, determining, by the data processing hardware,communication connections between at least one of: the end devices andthe user devices; the relay devices and the at least one networkbackhaul; the relay devices and the end devices; or the end devices andthe at least one network backhaul.
 9. The method of claim 8, whereindetermining the communication connections comprises, for each end devicedetermining a line-of-sight (LOS) communication path between the atleast one network backhaul and the corresponding end device.
 10. Themethod of claim 9, wherein the LOS communication path comprisescommunication links between the at least one network backhaul and atleast one relay device, and between the at least one relay device andthe corresponding end device.
 11. A system comprising: data processinghardware; and memory hardware in communication with the data processinghardware, the memory hardware storing instructions that when executed onthe data processing hardware cause the data processing hardware toperform operations comprising: receiving network parameters for anetwork, the network parameters comprising user locations, the networkcomprising: at least one network backhaul; relay devices incommunication with the network backhaul; and end devices incommunication with the relay devices or the network backhaul, the enddevices configured to wirelessly communicate with user devices at thecorresponding user locations; determining corresponding installationlocations for the end devices and the relay devices based on the networkparameters; and generating a network topology indicating the determinedcorresponding locations for the end devices and the relay devices. 12.The system of claim 11, wherein the network parameters further compriseat least one of corresponding candidate installation locations for theend devices, a wireless coverage criteria of the end devices, athreshold received signal strength indicator (RSSI) at the end devices,a threshold signal-to-interference-plus-noise ratio (SINR) at the enddevices, or a minimum communication bandwidth of the end devices. 13.The system of claim 11, wherein the network parameters further compriseat least one of a wireless coverage area of the relay devices, backhaullocations, or a map of a geographical area containing at least a portionof the network.
 14. The system of claim 11, wherein the at least onenetwork backhaul is configured to wirelessly communicate with the relaydevices and the relay devices are configured to wirelessly communicatewith at least one of each other or the end devices.
 15. The system ofclaim 11, wherein determining the corresponding locations for the enddevices is based on a threshold number of possible point-to-multi-pointcommunication connections between each end device and corresponding userdevices.
 16. The system of claim 11, wherein the operations furthercomprise determining a projected installation cost for installing thenetwork topology.
 17. The system of claim 16, wherein the operationfurther comprise: determining whether the projected installation costexceeds a threshold installation cost; and when the projectedinstallation cost exceeds a threshold installation cost, determining thecorresponding installation locations for the end devices and the relaydevices based on the network parameters and the projected installationcost.
 18. The system of claim 17, wherein the operations furthercomprise, when the projected installation costs exceeds the thresholdinstallation cost, determining communication connections between atleast one of: the end devices and the user devices; the relay devicesand the at least one network backhaul; the relay devices and the enddevices; or the end devices and the at least one network backhaul. 19.The system of claim 18, wherein determining the communicationconnections comprises, for each end device determining a line-of-sight(LOS) communication path between the at least one network backhaul andthe corresponding end device.
 20. The system of claim 19, wherein theLOS communication path comprises communication links between the atleast one network backhaul and at least one relay device, and betweenthe at least one relay device and the corresponding end device.